home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 9 / The PC-SIG Library on CD ROM - Ninth Edition.iso / 1601_700 / DISK1665 / DISK1665.ZIP / LANGDBA4.KED < prev    next >
Text File  |  1989-03-17  |  41KB  |  1,057 lines

  1. .Notice - Last Update:1988/11/17 17:30
  2. Importance Notice: The information contained in this option are for quick
  3.                    reference only. The accuracy of it should be based on your
  4.                    language manual.
  5. Set Up By        : Kuang H. Tseng
  6. Language         : dBASE IV(TM) by ASHTON-TATE
  7. . 1.   Language Elements 
  8.     Character Set - A to Z,a to z,0 to 9,underscore(_)
  9.     Data Type - (refer to separate key line for more)
  10.     System Variables - (refer to separate key line for more)
  11.     Memory Variables - (refer to separate key line for more)
  12.     Array - (refer to separate key line for more)
  13.     Macro substitution - (refer to separate key for more)
  14.     Operators - (refer to separate key line for more)
  15.     Commands - (refer to separate key line for more)
  16.     Functions - (refer to separate key line for more)
  17.     Program Line - contain command with up to 256-character long,
  18.                    command verb may be abbreviated to four-letter long,
  19.                    a command line may ends with ';' and continue to next line
  20.     Program Structure
  21.     SQL - (refer to separate key line for more)
  22.     Limitations - (refer to separate key line for more)
  23.     File Type - (refer to separate key line for more)
  24. . 2.   Data Types
  25.     Character - made up of the set of all ASCII characters
  26.     Numeric - largest number 1 X 10^308,smallest 1 X 10^-30,accuracy 15-16 digit
  27.             - represent numbers with IEEE long real (64 bit) binary floating pt
  28.     Logical - one byte long and contain a value of true(.T.) or false(.F.)
  29.     Date    - stored internally as the number of days since a base date
  30.             - format MM/DD/YY(American) and DD/MM/YY(European)
  31.     Memo    - store blocks of ASCII data, store in a file with extension .DBT
  32.             - Up to 64k of text in a single field
  33. . 3.1  Identifiers
  34.     - Memory variables and field names have same naming convention
  35.     - Must start with a character
  36.     - May contain an embedded underline
  37.     - Can be up to 10 character long
  38.     - Case insensitive
  39. . 3.2  Memory Variables
  40.     - use to temporarily store information in the memory
  41.     - create with STORE command or assignment operator
  42.     - naming of a memory variable as for identifiers (3.1)
  43.     - the type of the memory variable is same as the value stored in it
  44.     - to make the variable available to all procedures, declare it with PUBLIC
  45.       command. PRIVATE command is used to localize the scope
  46. . 3.3  System Variables
  47.     _alignment = <"LEFT/center/right">         alignment of output page 
  48.     _box       = <expL>                        controls printing defined boxes
  49.     _indent    = <expN>                        inden. of first line in paragraph
  50.     _lmargin   = <expN>                        page left margin
  51.     _padvance  = <"FORMFEED/linefeeds">        controls printer advances
  52.     _pageno    = <expN>                        determines or set page number
  53.     _pbpage    = <expN>                        beginning page for the printjob
  54.     _pcolno    = <expN>                        positions column for printhead
  55.     _pcopies   = <expN>                        number of copies for printjob
  56.     _pdriver   = <expN>                        activate printer driver
  57.     _pecode    = <expC>                        ending cotrol codes for printjob
  58.     _peject    = <"before/after/both/NONE">    controls ejecting of pager
  59.     _pepage    = <expN>                        page number to end the printjob
  60.     _pform     = <print form filename>         activates the print form file
  61.     _plength   = <expN>                        sets length of printed page
  62.     _plineno   = <expN>                        pnsitions the line on the page
  63.     _ploffset  = <expN>                        sets page left offset for print
  64.     _ppitch    = <"pica/elite/condensed/DEFAULT"> sets the printer pitch
  65.     _pquality  = <expL>                        selects quality or draft mode
  66.     _pscode    = <expC>                        provides starting control codes
  67.     _pspacing  = <1/2/3>                       sets line spacing for output
  68.     _pwait     = <expL>                        controls the wait for each page
  69.     _pwidth    = <expN>                        sets width of print page
  70.     _rmargin   = <expN>                        sets the page right margin
  71.     _tabs      = [<expC1,...>]                 sets tabs for output
  72.     _wrap      = <expL>                        sets word wrapping
  73. . 3.4  Arrays
  74.     - memory variables may be declared as one/two-dimensional arrays
  75.     - the limit on the number of arrays is determined by available memory
  76.     - create an array with DECLARE command,i.e., DECLARE memvar[5,5]
  77.     - initialize elements of an array same way as for regular memory variables
  78.     - element of the array is accessed by including the number of the element
  79.       in square brackets, i.e., memvar[3,2] for element of 3th row,2nd column
  80. . 3.5  Macro Substitution
  81.     - used to substitute the contents of a character memory variable in the
  82.       command line.
  83.     - the memory variable to be substituted must be preceded by the ampersand
  84.       '&'.
  85.     - macros can not contain commands or any part of a command including commas
  86. . 4.   Operators
  87.   Mathematical Operators
  88.     +    addition                      %    modulus
  89.     -    subtraction                   ** or ^ exponentiation
  90.     *    multiplication                ()   groups sets of numbers
  91.     /    division                      
  92.   Relation Operators
  93.     <    less than                     >         greater than
  94.     =    equal to                      <>,#,or !=     not equal to
  95.     <=   less than or equal to         >=        greater than or equal to
  96.     $    is a subset of                ==        compares for a perfect match
  97.   Logical Operator
  98.     .AND.     both expressions are true
  99.     .OR.      either expression is true
  100.     .NOT. or ! either expression is false
  101.     $         first char expreesion is contained in second char expression
  102.   String Operator
  103.     +    concatenation
  104.     -    concatenation with removing the trailing blanks on first string
  105.     $    substring comparison
  106. . 5.1  List of Commands by Class/Group
  107.   Creation of Files
  108.   Modifying of Files
  109.   Addition of Data in Databases
  110.   Editting of Data in Databases
  111.   Displaying of Data
  112.   Manipulating Databases
  113.   Manipulating Record Pointer Position
  114.   Manipulating Memory Variables
  115.   Setting Parameters
  116.   Debugging Program 
  117.   Program Flow Control
  118.   Miscellaneous
  119. . 5.2  List of Commands by Name and Syntax in Name order
  120. ?/?? <exp list>
  121. ???
  122. @ <row,col> [SAY <exp> [PICTURE <clause>]][FUNCTION <func list>]
  123.             [GET <var> [[OPEN] WINDOW <window name>][PICTURE <clause>] 
  124.             [FUNCTION <func list>]
  125.             [RANGE <low expN>,<high expN>][VALID <cond>][ERROR <expC>]]
  126.             [WHEN <cond>][DEFAULT <exp>]<MESSAGE <expC>]
  127.             [COLOR [<standard>][,<enhanced>]]]
  128. @ <row1,col1> [CLEAR] TO <row2,col2>]
  129. @ <row1,col1> FILLL TO <row2,col2>[COLOR <color attr>]
  130. @ <row1,col1> TO <row2,col2>[DOUBLE/PANEL/<border def.strg>][COLOR <color attr>]
  131. ACCEPT [<prompt>] TO <memvar>
  132. ACTIVATE MENU <menu name> [PAD <pad name>]
  133. ACTIVATE POPUP <popup name>
  134. ACTIVATE SCREEN                        ?????
  135. ACTIVATE WINDOW <window name list>/ALL
  136. APPEND [BLANK]
  137. APPEND FROM <filename>/? [FOR <cond>][TYPE]<file type>]
  138. APPEND FROM ARRAY [FOR <cond>]
  139. APPEND MEMO <memo field name> FROM <filename> [OVERWRITE]
  140. ASSIST
  141. AVERAGE <expN list> [<scope>][WHILE <cond>][FOR <cond>][TO <memvar list>/
  142.         TO ARRAY <array name>]
  143. BEGIN TRANSACTION [<pathname>]...END TRANSACTION
  144. BROWSE [NOINIT][NOFOLLOW][NOAPPEND][NOMENU][NOEDIT][NODELETE][NOCLEAR][COMPRESS]
  145.        [FORMAT][LOCK <expN>][WIDTH <expN>][FREEZE <field name>][WINDOW <w.name>]
  146.        [FIELDS<field name 1>[/R][/<column width>]/<calculated field name 1> =
  147.        <expression 1>[,...]]
  148. CALCULATE [scope] <AVG(expN>)/CNT()/MAX(exp>/MIN(<exp>)/NPV(<rate>,<flows>,
  149.           <initial>)/STD(<expN>)/SUM(<expN>)/VAR(<expN>)[FOR <cond>]
  150.           [WHILE <cond>][TO <memvar list>/TO ARRAY <array name>]
  151. CALL <module name> [WITH <var>]
  152. CANCEL
  153. CHANGE [NOINIT][NOFOLLOW][NOAPPEND][NOMENU][NOEDIT][NODELETE][NOCLEAR][<recno>]
  154.        [FIELDS <field list>][<scope>][FOR <cond>][WHILE <cond>]
  155. CLEAR [ALL/FIELDS/GETS/MEMORY/MENUS/POPUPS/TYPEHEAD/WINDOWS]
  156. CLOSE ALL/ALTERNATE/DATABASES/FORMAT/INDEX/PROCEDURE
  157. COMPILE <filename>
  158. CONTINUE
  159. CONVERT [TO <expN>]
  160. COPY FILE <filename> TO <filename>
  161. COPY INDEXES <.ndx file list> [TO <.mdx filename>]
  162. COPY MEMO <memo field name> TO <filename> [ADDITIVE]
  163. COPY STRUCTURE TO <filename> [FIELDS <field list>]
  164. COPY TAG <tag name> [OF .mdx filename] TO <.ndx filename>
  165. COPY TO ARRAY <array name>[FIELDS <field list>][<scope>]
  166.      [FOR <cond>][WHILE <cond>]
  167. COPY TO <file name> [[TYPE] <filetype>][FIELDS <field list>][<scope>]
  168.         [FOR <cond>][WHILE <cond>]
  169. COPY TO <file name> STRUCTURE EXTENDED
  170. COUNT [<scope>][WHILE <cond>][FOR <cond>][TO <memvar>]
  171. CREATE <.dbf filename>
  172. CREATE APPLICATION <filename>/?
  173. CREATE <filename> FROM <structure extended file>
  174. CREATE LABEL <.lbl filename>/?
  175. CREATE QUERY <.qry filename>/?
  176. CREATE REPORT <.frm filename>/?
  177. CREATE SCREEN <.scr filename>/?
  178. CREATE VIEW <.vue filename> FROM ENVIRONMENT
  179. DEACTIVATE MENU
  180. DEACTIVATE POPUP
  181. DEACTIVATE WINDOW <window name list>/ALL
  182. DEBUG <filename>/<proc name> [WITH <parm list>]
  183. DECLARE <array name 1>[<number of rows>[,<number of col>]]...]
  184. DEFINE BAR <line number> OF <popup name> PROMPT <expC>[MESSAGE <expC>]
  185.            [skip [for <cond>][NOSPACE]]
  186. DEFINE BOX FROM <print col> TO <print col> HEIGHT <exp> [AT LINE <print line>]
  187.            [SINGLE/DOUBLE/<border definition string>]
  188. DEFINE MENU <menu name> [MESSAGE <expC>]
  189. DEFINE PAD <pad name> OF <memu name> PROMPT <expC> [AT <row>,<col>]
  190.            [MESSAGE <expC>]
  191. DEFINE POPUP <popup name> FROM <row1> <col1>[TO <row2> <col2>][PROMPT FIELD
  192.        <field name>/PROMPT FILES [LIKE <skelton>]/[PROMPT STRUCTURE]
  193.        [MESSAGE <expC>]
  194. DEFINE WINDOW <window name> FROM <row1>,<col1> TO <row2>,<col2> [DOUBLE/PANEL/
  195.      NONE/<border definition string>][COLOR [<standard>][,<enhanced>][,<frame>]]
  196. DELETE [<scope>][WHILE <cond>][FOR <cond>]
  197. ERASE FILE <filename>/?
  198. DELETE TAG <tag name1> [OF <.mdx filename>]/<.ndx filename1>[,...]
  199. DIR [[ON] <drive:>][[LIKE] <pathname>\][<mask>]
  200. DISPLAY [FIELDS] <exp list>][OFF][<scope>][<exp list>][FOR <cond>]
  201.      [TO PRINTER/TO FILE <filename>]
  202. DISPLAY HISTORY [LAST <expN>[TO PRINTER/TO FILE <filename>]
  203. DISPLAY MEMORY [TO PRINTER/TO FILE <filename>]
  204. DISPLAY STATUS [TO PRINTER/TO FILE <filename>]
  205. DISPLAY STRUCTURE [IN <alias name>][TO PRINTER/TO FILE <filename>]
  206. DISPLAY USERS
  207. DO <.prg filename>/<procedure name>[WITH <parm list>]
  208. DO CASE ... CASE...[OTHERWISE]...ENDCASE
  209. DO WHILE ...[LOOP] [EXIT] ENDDO
  210. EDIT [NOINIT][NOFOLLOW][NOAPPEND][NOMENU][NOEDIT][NODELETE][NOCLEAR][<recno>] 
  211.      [<scope>][FIELDS <field list>][WHILE <cond>][FOR <cond>]
  212. EJECT
  213. ERASE <filename>/?
  214. EXIT
  215. EXPORT TO <filename> [TYPE] PFS/DBASE II/FW2/RPD FIELDS <field list>][<scope>]
  216.           [FOR <cond>][WHILE <cond>]
  217. FIND <literal key>/<n>
  218. FUNCTION <procedure name>
  219. GO/GOTO BOTTOM/TOP [IN <alias name>]
  220. GO/GOTO [RECORD] <rec no> [IN <alias name>]
  221. HELP [<dBASE IV keyword>]
  222. IF <cond> ... [ELSE ...] ENDIF
  223. IMPORT FROM <filename> [TYPE] PFS/DBASEII/FW2/RPD/WK1
  224. INDEX ON <key exp> TO <.ndx filename> TAG <tag name> [OF <.mdx filename>]
  225.          [UNIQUE][DESCENDING]
  226. INPUT [<prompt>] TO <memvar>
  227. INSERT [BLANK] [BEFORE]
  228. JOIN WITH <alias> TO <new file> FOR <cond> [FIELDS <field list>]
  229. LABEL FORM <.lbl filename>/? [<scope>][SAMPLE][WHILE <cond>]
  230.            [FOR <cond>][TO PRINT/TO FILE <filename>]
  231. LIST [FIELDS] <exp list>][OFF][<scope>][<exp list>][FOR <cond>]
  232.      [TO PRINTER/TO FILE <filename>]
  233. LIST HISTORY [LAST <expN>[TO PRINTER/TO FILE <filename>]
  234. LIST MEMORY [TO PRINTER/TO FILE <filename>]
  235. LIST STATUS [TO PRINTER/TO FILE <filename>]
  236. LIST STRUCTURE [IN <alias name>][TO PRINTER/TO FILE <filename>]
  237. LIST USERS
  238. LOAD <.exe/.com filename>
  239. LOCATE [<scope>] [WHILE <cond>] [FOR <cond>]
  240. LOGOUT
  241. LOOP
  242. MODIFY COMMAND/FILE <filename> [WINDOW <window name>]
  243. MODIFY <.dbf filename>
  244. MODIFY APPLICATION <filename>/?
  245. MODIFY <filename> FROM <structure extended file>
  246. MODIFY LABEL <.lbl filename>/?
  247. MODIFY QUERY <.qry filename>/?
  248. MODIFY REPORT <.frm filename>/?
  249. MODIFY SCREEN <.scr filename>/?
  250. MODIFY VIEW <.vue filename> FROM ENVIRONMENT
  251. MOVE WINDOW <window name> TO <row><column> /BY <rowcnt>,<colcnt>
  252. NOTE/*/&&
  253. ON ERROR/ESCAPE [<command>]
  254. ON KEY [<key label name>][<command>]
  255. ON PAD <pad name> OF <menu name> [ACTIVE POPUP <popup name>]
  256. ON PAGE [AT LINE <expN> <command>]
  257. ON READERROR [<command>]
  258. ON SELECTION PAD <pad name> OF <memu name> [<command>]
  259. PACK
  260. PARAMETERS <parm list>
  261. PLAY MACRO <macro name>
  262. PRINTJOB <commands> ENDPRINTJOB
  263. PRIVATE ALL [LIKE/EXCEPT <skelton>]
  264. PRIVATE <memvar list>/ARRAY <array definition list>
  265. PROCEDURE <proc name>
  266. PROTECT
  267. PUBLIC <memvar list>/[ARRAY <array definition list>]
  268. QUIT
  269. READ [SAVE]
  270. RECALL [<scope>] [WHILE <cond>][FOR <cond>]
  271. REINDEX
  272. RELEASE <memvar list> 
  273. RELEASE ALL [LIKE/EXCEPT <skelton>]]
  274. RELEASE MODULE <module name> /MENUS <menu name list>/POPUPS <popup name list>/
  275.                WINDOW <window name list>
  276. RENAME <old filename> TO <new filename>
  277. REPLACE [<scope>] <field1> WITH <exp1> [,<field2> WITH <exp2,...]
  278.         [WHILE <cond>][FOR <cond>][ADDITIVE]
  279. REPORT FORM <.frm filename>/? [<scope>][WHILE <cond>][FOR <cond>][PLANT]
  280.        [HEADING <expC>][NOEJECT]]SUMMARY][TO PRINTER/TO FILE <filename>]
  281. RESET [IN <alias name>]
  282. RESTORE FROM <.mem filename> [ADDITIVE]
  283. RESTORE MACRO FROM <macro filename> 
  284. RESTORE WINDOW <window name list>/ALL FROM <filename> 
  285. RESUME
  286. RETRY
  287. RETURN [TO MASTER] [<expression>]
  288. ROLLBACK [<.dbf filename>]
  289. RUN/! <DOS command>
  290. SAVE TO <mem filename> [ALL LIKE/EXCEPT <skelton>]
  291. SAVE MACROS TO <macro filename>
  292. SAVE WINDOW <window name list> /ALL TO <filename>
  293. SCAN [<SCOPE>][FOR <cond>][WHILE <cond>]...[LOOP]...[EXIT]...ENDSCAN
  294. SEEK <exp>
  295. SELECT <work area/alias>
  296. SET --- refer to the key line List of SET commands
  297. SHOW MENU <menu name> [PAD <pad name>]
  298. SHOW POPUP <popup name>
  299. SKIP <expN>[IN <alias name>]
  300. SORT TO <new filename> ON <field1>[/A][/C][/D][,<field2>[/A][/C][/D]...]
  301.         [<scope>][WHILE <cond>][FOR <cond>][ASCENDING]/[DESCENDING]
  302. STORE <exp> TO <memvar list>/<array element list>
  303. SUM [<scope>] [<expN list>] TO [<memvar list>/TO ARRAY <array name>]
  304.     [WHILE <cond>][FOR <cond>]
  305. SUSPEND
  306. TEXT <text characters> ENDTEXT 
  307. TOTAL TO <filename> ON <key field> [<scope>] [FIELDS <field list>]
  308.          [WHILE <cond>][FOR <cond>]
  309. TYPE <filename> [NUMBER][TO PRINTER/TO FILE <filename>]
  310. UNLOCK [ALL/IN <alias name>]
  311. UPDATE ON <key field> FROM <alias> REPLACE <field1> WITH <exp>
  312.           [,<field2> WITH <exp2>...][RANDOM]
  313. USE [<.dbf filename>/?] [IN <work area number>]
  314.     [INDEX <.ndx/.mdx file list>][ALIAS <alias>]
  315.     [ORDER <.ndx filename>/<.mdx tag> [OF <.mdx filename>]]
  316. WAIT [<prompt>] [TO <memvar>]
  317. ZAP
  318. . 5.3  List of SET commands
  319. SET ALTERNATE on/OFF 
  320. SET ALTERNATE TO [<text filename>][ADDITIVE] 
  321. SET AUTOSAVE on/OFF
  322. SET BELL ON/off
  323. SET BELL TO [<frequency>,<duration>]
  324. SET BLOCKSIZE TO <expN>
  325. SET BORDER TO [SINGLE/DOUBLE/PANEL/NONE/<border definition string>]
  326. SET CARRY on/OFF
  327. SET CARRY TO [<field list>][ADDITIVE]
  328. SET CATALOG on/OFF
  329. SET CATALOG TO <.cat filename>/?
  330. SET CENTURY on/OFF              
  331. SET CLOCK on/OFF
  332. SET CLOCK TO [<row>,<col>]
  333. SET COLOR ON/OFF
  334. SET COLOR TO [N(black)/B(blue)/G(green)/BG(cyan)/R(red)/RB(magenta)/GR(brown)
  335.             /W(white)][,<enhanced>][,<perimeter>][,<background>]]
  336. SET COLOR OF NORMAL/MESSAGES/TITLES/BOXES/HIGHLIGHT/ALERT FIELDS TO [<attr>]
  337. SET CONFIRM OFF/on 
  338. SET CONSOLE ON/off           
  339. SET CURRENCY TO [<expC>]
  340. SET CURRENCY LEFT/right
  341. SET DATE AMERICAN/ansi/british/italian/french/german/japan/usa/mdy/dmy/ymd
  342. SET DEBUG on/OFF
  343. SET DECIMALS TO <expN> 
  344. SET DEFAULT TO <drive> 
  345. SET DELETED OFF/on
  346. SET DELIMITERS OFF/on
  347. SET DELIMITERS TO <expC>/DEFAULT
  348. SET DESIGN ON/off
  349. SET DEVELOPMENT on/OFF
  350. SET DEVICE TO SCREEN/PRINTER/FILE <filename>
  351. SET DISPLAY TO MONO/COLOR/EGA25/EGA43/MONO43
  352. SET ECHO on/OFF
  353. SET EMACRO on/OFF
  354. SET ENCRYPTION ON/off
  355. SET ESCAPE ON/off  
  356. SET EXACT OFF/on     
  357. SET EXCLUSIVE ON/off
  358. SET FIELDS on/OFF
  359. SET FIELDS TO [<field> [/R]/<calculated field id>...][,...]/ALL
  360.     [LIKE/EXCEPT <skelton>][ADDITIVE]
  361. SET FILTER TO [FILE <filename>/?][<cond>]
  362. SET FIXED OFF/on
  363. SET FORMAT TO  <.fmt filename>/?
  364. SET FUNCTION <expN> TO <expC>
  365. SET HEADING ON/off
  366. SET HELP ON/off
  367. SET HISTORY ON/off
  368. SET HISTORY TO <expN>
  369. SET HOURS TO [12/24]
  370. SET INDEX TO <.ndx or .mdx file list>/?[ORDER <.ndx filename/TAG> 
  371.     <.mdx tag name> [OF <.mdx filename.]]
  372. SET INSTRUCT ON/off
  373. SET INTENSITY ON/off
  374. SET LOCK ON/off
  375. SET MARGIN TO <expN>
  376. SET MARK TO <expC>
  377. SET MEMOWIDTH TO <expN>
  378. SET MENUS ON/off
  379. SET MESSAGE TO <expC>
  380. SET NEAR on/OFF
  381. SET ODOMETER TO [<expN>]
  382. SET ORDER TO [<expN>]/[TAG <.mdx tag>/OF <.mdx filename>]]
  383. SET PATH TO <path list>
  384. SET POINT TO <expc>
  385. SET PRECISION TO <expN>
  386. SET PRINT OFF/on
  387. SET PRINTER TO <DOS device>
  388. SET PRINTER TO \\<computer name>\<printer name>=<dest.>/\\SPOOLER/\\CAPTURE
  389. SET PRINTER TO FILE <filename>
  390. SET PROCEDURE TO <procedure filename>
  391. SET REFRESH TO <expN>
  392. SET RELATION TO 
  393. SET RELATION TO <key exp>
  394. SET RELATION TO <expN1> INTO <alias1>[<expN2> INTO <alias2>...]
  395. SET REPROCESS
  396. SET SAFETY ON/off
  397. SET SCOREBOARD
  398. SET SEPARATOR TO [<expC>]
  399. SET SKIP TO [<alias name1> [,<alias name2>...]]
  400. SET SPACE ON/off
  401. SET SQL on/OFF
  402. SET STATUS ON/off
  403. SET STEP OFF/on
  404. SET TALK ON/off
  405. SET TITLE ON/off
  406. SET TRAP on/OFF
  407. SET TYPEAHEAD TO <expN>
  408. SET UNIQUE OFF/on      
  409. SET VIEW TO <query filename>/<.view filename>/?
  410. SET WINDOW OF MEMO TO <window name>
  411. . 5.4  List of Functions
  412. & - macro substitution
  413. ABS(<expN>) - absolute value
  414. ACCESS() - access level of current user
  415. ACOS(<expN>) - arccosine function
  416. ALIAS([<expN>]) - alias name of a specified work area
  417. ASC() - character to ASCII code conversion
  418. ASIN(<expN>) - arcsine function
  419. AT(<expC>,<expC>/memvar) - substring searc
  420. ATAN(<expN>) - arctangent function
  421. ATN2(<expN1>,<expN2>) - arctangent function for cosine and sine of points
  422. BAR() - BAR number; of the most recently selected BAR from a pop-up menu
  423. BOF(<alias>) - beginning of file
  424. CALL (<filename>,<expC>/<memvar>) - execute binary program modules
  425. CDOW(<expD>) - day of week
  426. CEILING(<expN>) - smallest integer that is greater than or equal to the value
  427. CHANGE() - determines if a record has been changed since it was opened
  428. CHR(<expN>) - ASCII code to character conversion
  429. CMONTH(<expD>) - calendar month
  430. COL() - current screen column position                                
  431. COMPLETED() - determine if a transaction has completed
  432. COS(<expN>) - cosine function
  433. CTOD(<expC>) - character to date conversion
  434. DATE() - system date
  435. DAY(<expD>) - day of month   
  436. DBF([<alias>]) - name of the database file in USE in the currently selected area
  437. DELETE() - delete record
  438. DIFFERENCE(<expc>,<expc>) - difference between two SOUNDEX() codes
  439. DISKSPACE - free space on disk in bytes
  440. DMY(<expD>) - converts the date to Day/Month/Year format from valid date exp.
  441. DOW(<expD>) - day of week
  442. DTOC(<expD>) - date to character conversion
  443. DTOR(<expN>) - converts degrees to radians
  444. DTOS(<expD>) - converts a date variable to a character string for indexing
  445. EOF() - end of file
  446. ERROR - number for ON ERROR  condition
  447. EXP(<expN>) - exponential
  448. FIELD(<expC>) - number of fields in DBF file
  449. FILE("<file>") - file existence
  450. FKLABEL() - names of function keys
  451. FKMAX() - maximum number of function keys
  452. FLOAT(<expN>) - converts binary coded decimal numbers to long real floating no.
  453. FLOCK([ALIAS]) - lock a database
  454. FLOOR(<expN>) - largest integer that is less than or equal to the value
  455. FOUND() - result of record search in DBF file
  456. FV(<payment>,<rate>,<periods>) - future value of equal regular deposits
  457. GETENV((<expC>) - return the contents of DOS environmental system variable
  458. IIF(<expL>,<exp1>,<exp2>) - expression 1 or expression 2 based on expression L
  459. INKEY(<expN>) - keypress during execution
  460. INT(<expN>) - integer
  461. ISALPHA(<expC>) - evalute for letter
  462. ISCOLOR() - evaluate for color mode
  463. ISLOWER() - evaluate for lower case
  464. ISMARKED([<alias>]) - checks if database file header is in a state of change
  465. ISUPPER() - evaluate for upper case
  466. KEY([<.mdx file>,]<expN>[,<alias name>]) - key expression for the index file
  467. LASTKEY() - decimal ASCII value of the last key pressed
  468. LEFT() - substring selection from left side
  469. LEN(<expc/<array>) - length of character string
  470. LIKE(<pattern>,<expC>) - uses for wildcard comparisons
  471. LINENO() - file relative line number of the line
  472. LKSYS(n) - get log-in name of the user who has locked a record
  473. LOG(<expN>) - logarithm
  474. LOG10(<expN>) - logarithm based 10
  475. LOOKUP(<return exp>,<look-for exp>,<look-in field>) - search and return a value
  476. LOWER(<expC>) - upper to lower case conversion
  477. LTRIM(<expC>) - remove leading blanks
  478. LUPDATE() - last update of DBF file
  479. MAX(<expN1>/(<expD1>,<expN2>/<expD2>) - determine greater of two values
  480. MDX(<expN>[,<alias name>]) - get filename for the .mdx file spec.
  481. MDY(<expD>) - converts date format to Month,Day,Year
  482. MEMLINES(<memo field name>) - get number of lines in a memo field
  483. MEMORY([0]) - get the amount of RAM unused
  484. MENU() - name of active menu
  485. MESSAGE() - message corresponding to the error
  486. MIN() - determine smaller of two values
  487. MLINE(<memo field name>,<expN>) - extracts a line of text from a memo field
  488. MOD() - MODULUS
  489. MONTH(<expD>) - month of year
  490. NDX(<expN>,[<alias name>]) - name of an .ndx file or an .mdx tag
  491. NETWORK() - determines if the system is running on a network
  492. ORDER([<alias name>]) - name of the primary order index file or .mdx tag
  493. OS() - name of OS
  494. PAD() - returns the prompt PAD name of the last selected PAD of the active menu
  495. PAYMENT (<principal>,<rate>,<periods>) - payment of loan amortization
  496. PCOL() - printer column position
  497. PI() - returns the number of PI
  498. POPUP() - name of the active pop-up menu
  499. PRINTSTATUS() - checks if printer is ready
  500. PROGRAM() - returns the name of program or procedure when an error occurred
  501. PROMPT() - returns the PROMPT of the selected popup or menu option
  502. PROW() - printer row position
  503. PV (<paymeny>,<rate>,<periods>) - calculates the present value of payments
  504. RAND([<expN>]) - generates a random number
  505. READKEY() - determine full-screen exiting keypress
  506. READVAR () - creates context sensitive help displays
  507. RECCOUNT() - number of records in DBF file
  508. RECNO() - current  record number
  509. RECSIZE - size of record
  510. REPLICATE(<expC>,<expN>) - repeat character expression
  511. RIGHT() - substring selection from right side
  512. RLOCK/LOCK([<expC list>][,<alias name>]) - lock multiple records
  513. ROLLBACK() - determines if the last ROLLBACK command was successful
  514. ROUND() - rounds off
  515. ROW() - current screen row  position
  516. RTOD(<expN>) - converts radians to degrees
  517. RTRIM() - remove trailing blanks
  518. SEEK(<expC> [,<alias name>]) - performs lookup in indexed database
  519. SELECT() - returns the number of the highest unused work area
  520. SET (detail refer to SET Key)
  521. SIGN(<expN>) - returns the sign of a number
  522. SIN(<expN>) - sine function
  523. SOUNDEX(<expC>) - provides a phonetic match or sound-alike code 
  524. SPACE(<expN>) - generates blank spaces
  525. SQRT(<expN>) - square root
  526. STR() - numeric to character conversion
  527. STUFF() - replace portion of string
  528. SUBSTR - substring selection
  529. TAG([.mdx file>,] <<expN>[,<alias name>]) - return the TAG name 
  530. TAN(<expN>) - tangent function
  531. TIME() - system time
  532. TRANSFORM - character/numeric in PICTURE format
  533. TYPE("<expC>") - validates expression
  534. UPPER(<expC>) - lower to upper case conversion
  535. USER() - returns the log-in name
  536. VAL(<expC>) - character to numeric conversion
  537. VERSION() - returns the dBASE IV version number in use
  538. YEAR(<expD>) - year
  539. . 7.1  Sample of Main program 
  540. * sample 1
  541. set status off
  542. set menu off
  543. clear
  544. @ 12,13 say "Welcome to dBASE IV programming with kEDITOR"
  545. @ 23, 0 say " "
  546. wait
  547. . 7.2  Sample of Main program calling a procedure
  548. * sample 2
  549. set status off
  550. set talk off
  551. set procedure to procfile
  552. clear
  553. mess = "Edit OK"
  554. do messline with mess
  555. clear
  556. mess = "Edit Bad"
  557. do messline with mess
  558. return
  559. * the following 5 lines should be in a separate file called procfile.prg
  560. procedure messline
  561. parameters string1
  562. @ 23,0 clear
  563. @ 23,5 say "Message Line : " + string1 + " - Press any key to continue"
  564. wait " "
  565. return
  566. * end of procfile file
  567. . 7.3  Sample of horizontal bar and popup menu display and choice selection
  568. * sample 3
  569. procedure mainmenu
  570.    ********************
  571.    * Set up environment
  572.    ********************
  573.    clear all
  574.    set clock off
  575.    set status off
  576.    set talk off
  577.    set catalog off
  578.    *****************
  579.    * Define help key
  580.    *****************
  581.    on key label F1 do showhelp
  582.    *******************
  583.    * Define data entry menu
  584.    *******************
  585.    define popup dataentry from 2,1 to 5,15
  586.    define bar  1 of dataentry prompt "Database 1"
  587.    define bar  2 of dataentry prompt "Database 2"
  588.    on selection popup dataentry do do_choice
  589.    *********************
  590.    * Define add_del menu
  591.    *********************
  592.    define popup add_del from 2,15 to 6,30
  593.    define bar  1 of add_del prompt "Add New Record"
  594.    define bar  2 of add_del prompt "Change Record"
  595.    define bar  3 of add_del prompt "Delete Record"
  596.    on selection popup add_del do do_choice
  597.    *********************
  598.    * Define reports menu
  599.    *********************
  600.    define popup reports from 2,30 to 5,45
  601.    define bar  1 of reports prompt "Report 1"
  602.    define bar  2 of reports prompt "Report 2"
  603.    on selection popup reports do do_choice
  604.    *****************
  605.    * Define bar menu
  606.    *****************
  607.    define menu barmenu
  608.    define pad dataentry of barmenu prompt "DataEntry" at 1,1;
  609.           message "Enter new data to database"
  610.    define pad add_del of barmenu prompt "FileUpdate" at 1,15;
  611.           message "Add New Record, Change or Delete Existing Record"
  612.    define pad reports of barmenu prompt "Reporting" at 1,30;
  613.           message "Produce reports"
  614.    define pad quit    of barmenu prompt "Quit" at 1,45;
  615.           message "Return to dBASE IV"
  616.    define pad exit    of barmenu prompt "Exit" at 1,60;
  617.           message "Exit to DOS"
  618.    on selection pad dataEntry of barmenu activate popup dataEntry
  619.    on selection pad add_del of barmenu activate popup add_del
  620.    on selection pad reports of barmenu activate popup reports
  621.    on selection pad quit    of barmenu do do_quit
  622.    on selection pad exit    of barmenu do do_exit
  623.    activate menu barmenu pad dataentry
  624. return
  625. procedure do_exit
  626.   quit
  627. return
  628. procedure do_quit
  629.   return to master
  630. return
  631. procedure do_choice
  632.    do case
  633.       case bar() =  1
  634.          do choice1   
  635.       case bar() =  2
  636.          do choice2
  637.    endcase
  638. return
  639. . 7.4  Sample of window and popup menu display and choice selection
  640. * sample 4
  641. procedure mainmenu
  642.    ********************
  643.    * Set up environment
  644.    ********************
  645.    clear all
  646.    set clock off
  647.    set status off
  648.    set talk off
  649.    set catalog off
  650.    ********************
  651.    * Define help key
  652.    ********************
  653.    on key label F1 do showhelp
  654.    *******************
  655.    * Define popup menu
  656.    *******************
  657.    define popup mainmenu from 7,27 to 17,50 message ;
  658. "  F1 for Help, Enter first letter of menu choice, or highlight and Enter"
  659.    define bar  2 of mainmenu prompt "   Choice A"
  660.    define bar  4 of mainmenu prompt "   Choice B"
  661.    define bar  6 of mainmenu prompt "   Return to dBASE"
  662.    define bar  8 of mainmenu prompt "   Quit to DOS"
  663.    on selection popup mainmenu do do_choice
  664.    ***********************************
  665.    * Display menu and loop for choices
  666.    ***********************************
  667.    mainloop = .t.
  668.    do while mainloop
  669.       * show system title lines
  670.       clear
  671.       @ 1,0  to 3,78 double
  672.       @ 2,25 say "System Main Line Control Menu" 
  673.       activate popup mainmenu
  674.    enddo
  675.    close all
  676.    clear
  677. return
  678. procedure do_choice
  679.    do case
  680.       case bar() =  2 
  681.          do choicea   
  682.       case bar() =  4 
  683.          do choiceb
  684.       case bar() =  6
  685.          mainloop = .f.
  686.          set color to
  687.          return to master
  688.       case bar() = 8
  689.          mainloop = .f.
  690.          set color to
  691.          quit
  692.    endcase
  693. return
  694. . 7.5  Sample of menu display and choice selection
  695. * sample 5
  696.     set talk off
  697.     set status off
  698.     set intensity off
  699.     set delimiter to '[]'
  700.     set delimiter on
  701.     clear
  702.     choice = "4"
  703.     @  5,27 say  "Main Menu"
  704.     @  6,27 say  "---------"
  705.     @  8,23 say  "1 : Add    records"
  706.     @  9,23 say  "2 : Change records"
  707.     @ 10,23 say  "3 : Delete records"
  708.     @ 11,23 say  "4 : Quit"
  709.     @ 13,27 say  "Select: " get choice
  710.     read
  711.     do case
  712.         case choice = "1"
  713.             do addrcd
  714.         case choice = "2"
  715.             do chgrcd
  716.         case choice = "3"
  717.             do delrcd
  718.         case choice = "4"
  719.             quit
  720.     endcase
  721.     return
  722. . 7.6  Sample of establishing multiple child relations to a parent 
  723. * sample 6
  724. select 3
  725. use db3 index db3key
  726. select 2
  727. use db2 index db2key
  728. select 1
  729. use db1 index db1key
  730. set relation to db3key into db3,db2key into db2
  731. . 7.7  Looping construct to move sequentially through a database file
  732. * sample 7
  733.     DO WHILE .NOT. EOF()
  734.        <statements>...
  735.        SKIP
  736.     ENDDO
  737. . 7.8  Sample of looping construct to perform repeat until
  738. * sample 8
  739.     more = .T.
  740.     DO WHILE more
  741.        <statements>...
  742.        more = (<cond>)
  743.     ENDDO
  744. . 7.9  Sample of displaying error message and pause
  745. * sample 9
  746.     ?? chr(7)                                      && beep
  747.     @ 23,0 say 'Key Number not found - '           && display in row 24
  748.     wait
  749.     @ 23,0 clear
  750. . 7.10 Sample of displaying error message and wait for answer Yes or No
  751. * sample 10
  752.    answer = " "
  753.    DO WHILE AT(answer,"YyNn") = 0
  754.       answer = " "
  755.       @ 24,0
  756.       set color to
  757.       @ 24,17 SAY "Is the above input correct ? (Y/N)" GET answer
  758.       READ
  759.       @ 24,0
  760.    ENDDO
  761. . 7.11 Sample of sequential database access
  762. * sample 11
  763.     use ???
  764.     do while .not. EOF()
  765.        ....
  766.        skip
  767.     enddo
  768. . 7.12 Sample of infinitive loop
  769. * sample 12
  770.     DO WHILE .T.
  771.        ...
  772.     ENDDO
  773. . 7.13 Sample of merging partial data from two databases
  774. * sample 13
  775. set safety off
  776. select 3                         && merged database file
  777. use db3
  778. zap
  779.  
  780. select 2                         && second database file,samefld are common
  781. use db2                          && in db1 and db2
  782. index on samefld to db2
  783.  
  784. select 1                         && first database file
  785. use db1
  786. set relation to samefld into B
  787.  
  788. DO WHILE .NOT. EOF()
  789.    mdb1fld1 = db1fld1
  790.    mdb2fld2 = B->db2fld2
  791.  
  792.    select 3
  793.    append blank
  794.    replace db1fld1        with mdb1fld1
  795.    replace db2fld2        with mdb2fld2
  796.  
  797.    select 1
  798.    SKIP
  799. ENDDO
  800. . 7.14 Sample of database reporting
  801. * sample 14
  802. use BOOKLIST       && database has fields of CODE,NAME,PRICE
  803. set device to print
  804. do while .not. EOF()
  805.   @  3,29 say "MY BOOK LIST"
  806.   @  4,29 say "------------"
  807.   @  6,14 say "CODE           NAME                PRICE"
  808.   @  7,14 say "----      --------------------   -------"
  809.   line = 8
  810.  
  811.   do while line < 60 .and. .not. EOF()
  812.     @ line ,14 say CODE
  813.     @ line ,24 say NAME
  814.     @ line ,48 say PRICE
  815.     line = line + 1
  816.     skip
  817.   enddo
  818.  
  819.   eject
  820. enddo
  821. set device to screen
  822. . 8.   Key Tables
  823.   Navigation keys
  824.     Leftarrow/Ctrl-S
  825.     Rightarrow/Ctrl-D
  826.     Ctrl-Leftarrow/Ctrl-A
  827.     Ctrl-Rightarrow/Ctrl-F
  828.     Uparrow/Ctrl-E
  829.     Downarrow/Ctrl-X/Return/Ctrl-M
  830.     Home/End
  831.     Ctrl-Home/Ctrl-End
  832.   Editing keys
  833.     Del/Ctrl-G
  834.     Backspace/Ctrl-H
  835.     Ctrl-T
  836.     Ctrl-Y
  837.     Ctrl-U
  838.   Escape keys
  839.     Ctrl-W/Ctrl-C/PgUp/PgDn
  840.     Return/Ctrl-M
  841.     Esc
  842.   Mode keys
  843.     Ins/Ctrl-V
  844. . 9.   File Types
  845.     Data Base File (.DBF)
  846.     Index File (.NDX)
  847.     Alternate (.TXT)
  848.     Command (.PRG)
  849.     Format (.FMT)
  850.     Label (.LBL)
  851.     Memory (.MEM)
  852.     Report (.FRM)
  853.     Memo (.DBT)
  854.     VisiCalc (.DIF)
  855.     Framework II (.FW2)
  856.     RapidFile (.RPD)
  857.     System Data Format (.SDF)
  858.     Multiplan (.SYL)
  859.     Lotus 1-2-3 Release 1A (.WKS)
  860.     Lotus 1-2-3 Release 2.x (.WK1)
  861. .10.1  SQL Commands
  862. ALTER TABLE <table-name> ADD (<column-name> <data-type>[,...]);
  863. CLOSE <cursor-name>;
  864. CREATE DATABASE [path] <database>;
  865. CREATE [UNIQUE] INDEX <index-name> ON <table-name> (<column-name> [ASC/DES]...);
  866. CREATE SYNONYM <synonym-name> FOR <table-name>;
  867. CREATE TABLE <table-name> (<column-name> <data-type>[,...]);
  868. CREATE VIEW <view-name>[(<column-list>)] AS subselect [WITH CHECK OPTION];
  869. DBCHECK [<table-name>];
  870. DBDEFINE [<.dbf-file>];
  871. DECLARE <cursor-name> CURSOR FOR <SELECT statememt>
  872.         /<ORDER BY clause>];
  873. DELETE FROM <table-name> [WHERE <clause>];
  874. DELETE FROM <table-name> WHERE CURRENT OF <cursor-name>;
  875. DROP DATABASE <database>;
  876. DROP INDEX <index-name>;
  877. DROP SYNONYM <synonym-name>;
  878. DROP TABLE <table-name>;
  879. DROP VIEW <view-name>;
  880. FETCH <cursor-name> INTO <variable-list>;
  881. GRANT ALL [PRIVILEGES]/<privileges-list> ON {TABLE] <table-list> TO PUBLIC/
  882.           <user-list> [WITH GRANT OPTION];
  883. INSERT INTO <table-name> [(<column-list>)] VALUES (<value-list>);
  884. INSERT INTO <table-name> [(<column-list>)]<subselect>;
  885. LOAD DATA FROM [path] <filename> INTO TABLE <table-name> [[TYPE] SDF/DIF/WKS/SYK
  886.                /FW2/RPD/DBASEII/DELIMITED [WITH BLANK/WITH <delimiter>]];
  887. OPEN <cursor-name>;
  888. REVOKE ALL [PRIVILEGES]/[privileges-list> ON [TABLE] <table-name> FRON PUBLIC/
  889.            <user-list>;
  890. ROLLBACK [WORK];
  891. RUNSTATS [<table-name>];
  892. .11.   Config.DB keywords
  893. - Configuration commands
  894.      BUCKET      =<1K to 31K>
  895.      COMMAND     =<dBASE IV command>
  896.      DO          =<1 to 256>
  897.      EEMS        =ON/off
  898.      EXPSIZE     =<100 to 2000>
  899.      FASTCRT     =ON/off
  900.      FILES       =<15 to 99>
  901.      GETS        =<35 to 1023>
  902.      INDEXBYTES  =<2K TO 128K>
  903.      PDRIVER     =<printer driver filename>
  904.      PROMPT      =<up to 19 characters,default .>
  905.      RESETCRT    =ON/off
  906.      SQLDATABASE =<SQL database name>
  907.      SQLHOME     =<path name>
  908.      TEDIT       =<program editor>
  909.      WP          =<ASCII text editor>
  910. - Memory Block Size Allocation
  911.      MVMAXBLKS   =<1 to 150,default 10>
  912.      MVBLKSIZE   =<25 to 100,default 50>
  913.      RTMAXBLKS   =<1 to 150,default 10>
  914.      RTBLKSIZE   =<25 to 100,default 50>
  915.      CTMAXSYMS   =<1 TO 5000,default 500>
  916. - Function Keys Definitions
  917.      F1          =<expC,default HELP;*>
  918.      F2          =<expC,default ASSIST;>
  919.      F3          =<expC,default LIST;>
  920.      F4          =<expC,default DIR;>
  921.      F5          =<expC,default DISPLAY STRUCTURE;>
  922.      F6          =<expC,default DISPLAY STATUS;>
  923.      F7          =<expC,default DISPLAY MEMORY;>
  924.      F8          =<expC,default DISPLAY;>
  925.      F9          =<expC,default APPEND;>
  926.      F10         =<expC,default EDIT;>
  927.      SHIFT-F10   =<expC,default MACRO MENU *>
  928. _ Set Commands
  929.      ALTERNATE   =on/OFF
  930.      ALTERNATE   =<filename>
  931.      AUTOSAVE    =on/OFF
  932.      BELL        =ON/off
  933.      BELL        =<freq. 19 to 10000,default 512HZ,
  934.                    duration 2 to 19,default 2>
  935.      BLOCKSIZE   =<1 to 32,default 1(512K)>
  936.      BORDER      =<SINGLE/double/panel/none/border definition string>
  937.      CARRY       =<on/OFF>
  938.      CATALOG     =<on/OFF>
  939.      CENTURY     =<on/OFF>
  940.      CLOCK       =<on/OFF>
  941.      CLOCK       =<row,column,default 0,69>
  942.      COLOR       =<<ON/off>
  943.      COLOR       =[<standard>][,[enhanced>][,[<perimeter>][,[background>]]]]
  944.      CONFIRM     =<on/OFF>
  945.      CONSOLE     =<ON/off>
  946.      CURRENCY    =<expC,default $
  947.      CURRENCY    =<LEFT/right>
  948.      DATE        =<AMERICAN/ansi/british/french/german/italian/japan/usa/mdy/
  949.                    dmy/ymd>
  950.      DEBUG       =<on/OFF>
  951.      DECIMALS    =<0 to 18,default 2>
  952.      DEFAULT     =<expC,default drive name>
  953.      DELIMITERS  =<on/OFF>
  954.      DESIGN      =<expC,default :>
  955.      DEVELOPMENT =<ON/off>
  956.      DEVICE      =<SCREEN/printer/filename>
  957.      DISPLAY     =<MONO/COLOR/EGA25/EGA43/MONO43>
  958.      ECHO        =<on/OFF>
  959.      ENCRYPTION  =<on/OFF>
  960.      ESCAPE      =<ON/off>
  961.      EXACT       =<on/OFF>
  962.      EXCLUSIVE   =<on/OFF>
  963.      FULLPATH    =<on/OFF>
  964.      FUNCTION    =<expN,expC>
  965.      HEADING     =<ON/off>
  966.      HELP        =<ON/off>
  967.      HISTORY     =<ON/off>
  968.      HISTORY     =<0 to 16000,default 20>
  969.      HOURS       =<12/24,default 12>
  970.      INSTRUCT    =<ON/off>
  971.      INTENSITY   =<ON/off>
  972.      LOCK        =<ON/off>
  973.      MARGIN      =<0 to 254,default 0
  974.      MEMOWIDTH   =<8 to 32000,default 50
  975.      MENUS       =<ON/off>
  976.      NEAR        =<on/OFF>
  977.      ODOMETER    =<1 to 200,default 1>
  978.      PATH        =<path name>
  979.      PAUSE       =<on/OFF>
  980.      POINT       =<expC,default .,numbers and space not allowed>
  981.      PRECISION   =<10 to 20,default 16>
  982.      PRINTER     =<on/OFF>
  983.      PRINTER     =<PRN/lpt1/lpt2/lpt3/com1/com2>
  984.      REFRESH     =<0 to 36000,default 0>
  985.      REPROCESS   =<-1 to 32000,default 0>
  986.      SAFETY      =<ON/off>
  987.      SCOREBOARD  =<ON/off>
  988.      SEPARATOR   =<expC,default ,>
  989.      SPACE       =<ON/off>
  990.      SQL         =<on/OFF>
  991.      STATUS      =<on/OFF>
  992.      STEP        =<on/OFF>
  993.      TABS        =<expC,default "">
  994.      TALK        =<ON/off>
  995.      TRAP        =<on/OFF>
  996.      TYPEAHEAD   =<0 to 32000,default 20>
  997.      UNIQUE      =<on/OFF>
  998.      VIEW        =<query filename/view filename>
  999. .12.   Limitations
  1000.     - Database file
  1001.          -- Number of records : 1 billion
  1002.          -- Number of bytes : 2 billion
  1003.          -- 10 work areas for 10 databases to be opened at one time.
  1004.          -- 255 fields per database
  1005.          -- Maximum size of a record : 4,000 bytes
  1006.     - Maximum number of open index file per database is 11.
  1007.     - Each multiple index file can include up to 47 index tags.
  1008.     - Up to 25,000 memory variables may be set in Config.db file(default 500).
  1009.     - Command line length:255 char in dot command,1,024 bytes in edit window.
  1010.     - Maximum number of GET commands in a format file is 2000.
  1011.     - Up to 16,000 commands can be set in SET HISTORY command.
  1012.     - Up to 1,170 procedures in a procedure file.
  1013.     - Up to 16 binary programs loaded with each up to 32,000 bytes long.
  1014.     - The pop-up window column to 79,row to 21.
  1015.     - Up to 20 window definitions in memory at one time.
  1016.     - Up to 50 parameters to be passed to a subroutine.
  1017.     - The memo width is from 5 to 250.
  1018.     - Up to 32 .dbo files can be active at one time.
  1019.     - Maximum length of the key expression is 220 characters. The maximum length
  1020.       of the key, result of the evaluated index key expression is 100 characters
  1021.     - Create up to 35 unique macro keys.
  1022.     - Maximum number of programmable function keys is 29
  1023. .13.   PICTURE Symbols (Functions and Template)
  1024.     Function Symbols
  1025.     ----------------
  1026.          Function   Action
  1027.          A          alphabetic characters only
  1028.          B          left-justified text
  1029.          C          displays CR(credit) after positive numbers
  1030.          D          date in American format
  1031.          E          date in European format
  1032.          I          centers text
  1033.          J          right-justified text
  1034.          L          displays leading zeros
  1035.          M          allows a list of choices for a GET variable
  1036.          R          display in template but not enter into field
  1037.          S<n>       allows horizontal scrolling with a GET field width <n>
  1038.          T          trims leading and trailing blanks
  1039.          X          displays DB(debit) after negative numbers
  1040.          Z          displays zero as blank
  1041.          (          encloses negative numbers in parentheses 
  1042.          !          converts alphabetic characters to upper case
  1043.     Template Symbols
  1044.     ----------------
  1045.          Template  Action
  1046.          A         letters only 
  1047.          L         logical data only
  1048.          N         letters and digits
  1049.          X         any character
  1050.          Y         allows only "Y" or "N",converts "y" or "n" to upper case
  1051.          9         digits for any data type including sign for numeric
  1052.          #         displays digits,signs, and spaces for any data type
  1053.          !         converts an alphabetic character to upper case
  1054.          $         displays SET CURRENT string in leading space of a numeric
  1055.          .         specifies a decimal point position
  1056.          ,         specifies a comma position
  1057.